package com.slwish.xty.utils;

import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;

/**
 * 模块说明：
 *
 * @author 陈浩
 * @date 2017/11/30
 */

public class LocalUtils {
    /**
     * 实现跳转至第三方地图应用
     *
     * @param mContext
     * @param address   地址
     * @param longitude 经度
     * @param latitude  纬度
     */
    public static void intentToMap(Context mContext, String address, double longitude, double latitude) {
        if (isAvilible(mContext, "com.baidu.BaiduMap")) {//百度地图

            invokingBD(mContext, address);
        } else if (isAvilible(mContext, "com.autonavi.minimap")) {//高德地图
            invokingGD(mContext, address, longitude, latitude);
        }
    }

    /**
     * 跳转至百度地图
     *
     * @param mContext
     * @param address  地址
     */
    public static void invokingBD(Context mContext, String address) {
        //  com.baidu.BaiduMap这是高德地图的包名
        //调起百度地图客户端try {
        Intent intent = null;
        try {
            String uri = "intent://map/direction?origin=latlng:0,0|name:我的位置&destination=" + "" + address + "" + "&mode=drivingion=" + "城市" + "&referer=Autohome|GasStation#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end";
            intent = Intent.getIntent(uri);
            mContext.startActivity(intent); //启动调用
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 跳转至高德地图
     *
     * @param mContext
     * @param address   地址
     * @param longitude 经度
     * @param latitude  纬度
     */
    public static void invokingGD(Context mContext, String address, double longitude, double latitude) {
        Intent intent = null;
        try {
            String dat = "androidamap://keywordNavi?sourceApplication=softname&keyword=" + address + "&style=2";
            intent = new Intent(Intent.ACTION_VIEW, android.net.Uri.parse(dat));
            intent.setPackage("com.autonavi.minimap");
            mContext.startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
        }
//        Uri mUri = Uri.parse("geo:"+latitude+","+longitude+"?q="+address+"");
//        Intent mIntent = new Intent(Intent.ACTION_VIEW, mUri);
//        mContext.startActivity(mIntent);
    }

    /* 检查手机上是否安装了指定的软件
     * @param context
     * @param packageName：应用包名
     * @return
     */
    public static boolean isAvilible(Context context, String packageName) {
        //获取packagemanager
        PackageInfo packageInfo;
        try {
            PackageManager packageManager = context.getPackageManager();
            packageInfo = packageManager.getPackageInfo(packageName, 0);
        } catch (PackageManager.NameNotFoundException e) {
            packageInfo = null;
            e.printStackTrace();
        }
        //判断packageNames中是否有目标程序的包名，有TRUE，没有FALSE
        return packageInfo != null;
//        return packageNames.contains(packageName);
    }
}
